<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>RtpPayloadReader (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="RtpPayloadReader (ExoPlayer library)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.source.rtsp.reader</a></div>
<h2 title="Interface RtpPayloadReader" class="title">Interface RtpPayloadReader</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="RtpAc3Reader.html" title="class in com.google.android.exoplayer2.source.rtsp.reader">RtpAc3Reader</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">RtpPayloadReader</span></pre>
<div class="block">Extracts media samples from the payload of received RTP packets.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RtpPayloadReader.Factory.html" title="interface in com.google.android.exoplayer2.source.rtsp.reader">RtpPayloadReader.Factory</a></span></code></th>
<td class="colLast">
<div class="block">Factory of <a href="RtpPayloadReader.html" title="interface in com.google.android.exoplayer2.source.rtsp.reader"><code>RtpPayloadReader</code></a> instances.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#consume(com.google.android.exoplayer2.util.ParsableByteArray,long,int,boolean)">consume</a></span>&#8203;(<a href="../../../util/ParsableByteArray.html" title="class in com.google.android.exoplayer2.util">ParsableByteArray</a>&nbsp;data,
       long&nbsp;timestamp,
       int&nbsp;sequenceNumber,
       boolean&nbsp;rtpMarker)</code></th>
<td class="colLast">
<div class="block">Consumes the payload from the an RTP packet.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createTracks(com.google.android.exoplayer2.extractor.ExtractorOutput,int)">createTracks</a></span>&#8203;(<a href="../../../extractor/ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorOutput</a>&nbsp;extractorOutput,
            int&nbsp;trackId)</code></th>
<td class="colLast">
<div class="block">Initializes the reader by providing its output and track id.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onReceivingFirstPacket(long,int)">onReceivingFirstPacket</a></span>&#8203;(long&nbsp;timestamp,
                      int&nbsp;sequenceNumber)</code></th>
<td class="colLast">
<div class="block">This method should be called on reading the first packet in a stream of incoming packets.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seek(long,long)">seek</a></span>&#8203;(long&nbsp;nextRtpTimestamp,
    long&nbsp;timeUs)</code></th>
<td class="colLast">
<div class="block">Seeks the reader.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="createTracks(com.google.android.exoplayer2.extractor.ExtractorOutput,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTracks</h4>
<pre class="methodSignature">void&nbsp;createTracks&#8203;(<a href="../../../extractor/ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorOutput</a>&nbsp;extractorOutput,
                  int&nbsp;trackId)</pre>
<div class="block">Initializes the reader by providing its output and track id.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>extractorOutput</code> - The <a href="../../../extractor/ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorOutput</code></a> instance that receives the extracted data.</dd>
<dd><code>trackId</code> - The track identifier to set on the format.</dd>
</dl>
</li>
</ul>
<a id="onReceivingFirstPacket(long,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onReceivingFirstPacket</h4>
<pre class="methodSignature">void&nbsp;onReceivingFirstPacket&#8203;(long&nbsp;timestamp,
                            int&nbsp;sequenceNumber)</pre>
<div class="block">This method should be called on reading the first packet in a stream of incoming packets.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timestamp</code> - The timestamp associated with the first received RTP packet. This number has
     no unit, the duration conveyed by it depends on the frequency of the media that the RTP
     packet is carrying.</dd>
<dd><code>sequenceNumber</code> - The sequence associated with the first received RTP packet.</dd>
</dl>
</li>
</ul>
<a id="consume(com.google.android.exoplayer2.util.ParsableByteArray,long,int,boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consume</h4>
<pre class="methodSignature">void&nbsp;consume&#8203;(<a href="../../../util/ParsableByteArray.html" title="class in com.google.android.exoplayer2.util">ParsableByteArray</a>&nbsp;data,
             long&nbsp;timestamp,
             int&nbsp;sequenceNumber,
             boolean&nbsp;rtpMarker)
      throws <a href="../../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></pre>
<div class="block">Consumes the payload from the an RTP packet.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>data</code> - The RTP payload to consume.</dd>
<dd><code>timestamp</code> - The timestamp of the RTP packet that transmitted the data. This number has no
     unit, the duration conveyed by it depends on the frequency of the media that the RTP packet
     is carrying.</dd>
<dd><code>sequenceNumber</code> - The sequence number of the RTP packet.</dd>
<dd><code>rtpMarker</code> - The marker bit of the RTP packet. The interpretation of this bit is specific
     to each payload format.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></code> - If the data could not be parsed.</dd>
</dl>
</li>
</ul>
<a id="seek(long,long)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>seek</h4>
<pre class="methodSignature">void&nbsp;seek&#8203;(long&nbsp;nextRtpTimestamp,
          long&nbsp;timeUs)</pre>
<div class="block">Seeks the reader.

 <p>This method must only be invoked after the PLAY request for seeking is acknowledged by the
 RTSP server.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nextRtpTimestamp</code> - The timestamp of the first packet to arrive after seek.</dd>
<dd><code>timeUs</code> - The server acknowledged seek time in microseconds.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>
